import axios from 'axios'
const request = axios.create({
  //
  baseURL: '/api',
  timeout: 20000,
  headers: {},
})
// 请求拦截器
request.interceptors.request.use(
  // 默认情况下：只会触发成功回调
  (config) => {
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.token = token
    }
    return config
  }
)

// 响应拦截器
request.interceptors.response.use(
  // 成功回调：请求成功：响应状态码2xx
  (response) => {
    // 请求成功并不代表功能成功
    // 希望成功就是功能成功，失败就是请求失败、功能失败
    if (response.data.code === 200) {
      // 返回成功的数据
      return response.data
    }

    // 返回一个失败的promise对象，外面触发时来到失败
    return Promise.reject(response.data.message)
  },
  // 失败回调：请求失败：响应状态码非2xx
  (err) => {
    // 提示错误
    console.log(err.message)

    return Promise.reject()
  }
)

export default request
